package com.ixonos.cloud;

import java.io.InputStream;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.ImageView;

public class MyView extends ImageView implements Runnable {
    private static final String TAG = "Weather";
    private Bitmap mBitmap = null;
    private Paint mPaint = null;
    private int imgIndex = 0;
    private static int image[] = { R.drawable.cloudy_2_0, R.drawable.cloudy_2_1, R.drawable.cloudy_2_2,
            R.drawable.cloudy_2_3, R.drawable.cloudy_2_4, R.drawable.cloudy_2_5, R.drawable.cloudy_2_6,
            R.drawable.cloudy_2_7, R.drawable.cloudy_2_8, R.drawable.cloudy_2_9, R.drawable.cloudy_2_10,
            R.drawable.cloudy_2_11, R.drawable.cloudy_2_12, R.drawable.cloudy_2_13, R.drawable.cloudy_2_14,
            R.drawable.cloudy_2_15, R.drawable.cloudy_2_16, R.drawable.cloudy_2_17, R.drawable.cloudy_2_18,
            R.drawable.cloudy_2_19, R.drawable.cloudy_2_20, R.drawable.cloudy_2_21, R.drawable.cloudy_2_22,
            R.drawable.cloudy_2_23, R.drawable.cloudy_2_24, R.drawable.cloudy_2_25, R.drawable.cloudy_2_26,
            R.drawable.cloudy_2_27, R.drawable.cloudy_2_28, R.drawable.cloudy_2_29, R.drawable.cloudy_2_30,
            R.drawable.cloudy_2_31, R.drawable.cloudy_2_32, R.drawable.cloudy_2_33, R.drawable.cloudy_2_34,
            R.drawable.cloudy_2_35, R.drawable.cloudy_2_36, R.drawable.cloudy_2_37, R.drawable.cloudy_2_38,
            R.drawable.cloudy_2_39, R.drawable.cloudy_2_40, R.drawable.cloudy_2_41, R.drawable.cloudy_2_42,
            R.drawable.cloudy_2_43, R.drawable.cloudy_2_44, R.drawable.cloudy_2_45, R.drawable.cloudy_2_46,
            R.drawable.cloudy_2_47, R.drawable.cloudy_2_48, R.drawable.cloudy_2_49, R.drawable.cloudy_2_50,
            R.drawable.cloudy_2_51, R.drawable.cloudy_2_52, R.drawable.cloudy_2_53, R.drawable.cloudy_2_54,
            R.drawable.cloudy_2_55, R.drawable.cloudy_2_56, R.drawable.cloudy_2_57, R.drawable.cloudy_2_58,
            R.drawable.cloudy_2_59, R.drawable.cloudy_2_60, R.drawable.cloudy_2_61, R.drawable.cloudy_2_62,
            R.drawable.cloudy_2_63, R.drawable.cloudy_2_64, R.drawable.cloudy_2_65, R.drawable.cloudy_2_66,
            R.drawable.cloudy_2_67, R.drawable.cloudy_2_68, R.drawable.cloudy_2_69, R.drawable.cloudy_2_70,
            R.drawable.cloudy_2_71, R.drawable.cloudy_2_72, R.drawable.cloudy_2_73, R.drawable.cloudy_2_74,
            R.drawable.cloudy_2_75, R.drawable.cloudy_2_76, R.drawable.cloudy_2_77, R.drawable.cloudy_2_78,
            R.drawable.cloudy_2_79, R.drawable.cloudy_2_80, R.drawable.cloudy_2_81, R.drawable.cloudy_2_82,
            R.drawable.cloudy_2_83, R.drawable.cloudy_2_84, R.drawable.cloudy_2_85, R.drawable.cloudy_2_86,
            R.drawable.cloudy_2_87, R.drawable.cloudy_2_88, R.drawable.cloudy_2_89, R.drawable.cloudy_2_90,
            R.drawable.cloudy_2_91, R.drawable.cloudy_2_92, R.drawable.cloudy_2_93, R.drawable.cloudy_2_94,
            R.drawable.cloudy_2_95, R.drawable.cloudy_2_96, R.drawable.cloudy_2_97, R.drawable.cloudy_2_98,
            R.drawable.cloudy_2_99, R.drawable.cloudy_2_100, R.drawable.cloudy_2_101,
            R.drawable.cloudy_2_102, R.drawable.cloudy_2_103, R.drawable.cloudy_2_104,
            R.drawable.cloudy_2_105, R.drawable.cloudy_2_106, R.drawable.cloudy_2_107,
            R.drawable.cloudy_2_108, R.drawable.cloudy_2_109, R.drawable.cloudy_2_110,
            R.drawable.cloudy_2_111, R.drawable.cloudy_2_112, R.drawable.cloudy_2_113,
            R.drawable.cloudy_2_114, R.drawable.cloudy_2_115, R.drawable.cloudy_2_116,
            R.drawable.cloudy_2_117, R.drawable.cloudy_2_118, R.drawable.cloudy_2_119,
            R.drawable.cloudy_2_120, R.drawable.cloudy_2_121, R.drawable.cloudy_2_122,
            R.drawable.cloudy_2_123, R.drawable.cloudy_2_124, R.drawable.cloudy_2_125,
            R.drawable.cloudy_2_126, R.drawable.cloudy_2_127, R.drawable.cloudy_2_128,
            R.drawable.cloudy_2_129, R.drawable.cloudy_2_130, R.drawable.cloudy_2_131,
            R.drawable.cloudy_2_132, R.drawable.cloudy_2_133, R.drawable.cloudy_2_134,
            R.drawable.cloudy_2_135, R.drawable.cloudy_2_136, R.drawable.cloudy_2_137,
            R.drawable.cloudy_2_138, R.drawable.cloudy_2_139, R.drawable.cloudy_2_140,
            R.drawable.cloudy_2_141, R.drawable.cloudy_2_142, R.drawable.cloudy_2_143,
            R.drawable.cloudy_2_144, R.drawable.cloudy_2_145, R.drawable.cloudy_2_146,
            R.drawable.cloudy_2_147, R.drawable.cloudy_2_148, R.drawable.cloudy_2_149,
            R.drawable.cloudy_2_150, R.drawable.cloudy_2_151, R.drawable.cloudy_2_152,
            R.drawable.cloudy_2_153, R.drawable.cloudy_2_154, R.drawable.cloudy_2_155,
            R.drawable.cloudy_2_156, R.drawable.cloudy_2_157, R.drawable.cloudy_2_158,
            R.drawable.cloudy_2_159, R.drawable.cloudy_2_160, R.drawable.cloudy_2_161,
            R.drawable.cloudy_2_162, R.drawable.cloudy_2_163, R.drawable.cloudy_2_164,
            R.drawable.cloudy_2_165, R.drawable.cloudy_2_166, R.drawable.cloudy_2_167,
            R.drawable.cloudy_2_168, R.drawable.cloudy_2_169, R.drawable.cloudy_2_170,
            R.drawable.cloudy_2_171, R.drawable.cloudy_2_172, R.drawable.cloudy_2_173,
            R.drawable.cloudy_2_174, R.drawable.cloudy_2_175, R.drawable.cloudy_2_176,
            R.drawable.cloudy_2_177, R.drawable.cloudy_2_178, R.drawable.cloudy_2_179,
            R.drawable.cloudy_2_180, R.drawable.cloudy_2_181, R.drawable.cloudy_2_182,
            R.drawable.cloudy_2_183, R.drawable.cloudy_2_184, R.drawable.cloudy_2_185,
            R.drawable.cloudy_2_186, R.drawable.cloudy_2_187, R.drawable.cloudy_2_188,
            R.drawable.cloudy_2_189, R.drawable.cloudy_2_190, R.drawable.cloudy_2_191,
            R.drawable.cloudy_2_192, R.drawable.cloudy_2_193, R.drawable.cloudy_2_194,
            R.drawable.cloudy_2_195, R.drawable.cloudy_2_196, R.drawable.cloudy_2_197,
            R.drawable.cloudy_2_198, R.drawable.cloudy_2_199, R.drawable.cloudy_2_200,
            R.drawable.cloudy_2_201, R.drawable.cloudy_2_202, R.drawable.cloudy_2_203,
            R.drawable.cloudy_2_204, R.drawable.cloudy_2_205, R.drawable.cloudy_2_206,
            R.drawable.cloudy_2_207, R.drawable.cloudy_2_208, R.drawable.cloudy_2_209 };

    public MyView(Context context, AttributeSet attrs) {
        super(context, attrs);

        // setFrame(0, 0, 300, 300);

        mPaint = new Paint();
        new Thread(this).start();
    }

    @Override
    protected void onDraw(Canvas canvas) {
        if (mBitmap != null) {
            canvas.drawBitmap(mBitmap, 0, 0, mPaint);
        }

        // super.onDraw(canvas);
    }

    @Override
    public void run() {
        while (true) {
            try {
                Thread.sleep(50);

                BitmapFactory.Options opt = new BitmapFactory.Options();
                opt.inPreferredConfig = Bitmap.Config.RGB_565;
                opt.inPurgeable = true;
                opt.inInputShareable = true;

                if (imgIndex == 209) {
                    imgIndex = 0;
                } else {
                    imgIndex ++;
                }

                InputStream is = getContext().getResources().openRawResource(image[imgIndex]);
                mBitmap = BitmapFactory.decodeStream(is, null, opt);

            } catch (InterruptedException e) {
                Log.e(TAG, "[InterruptedException] Get bitmap fail.");
            }

            postInvalidate();
        }
    }
}
